@alphabite/medusa-collection-images
Version:
Alphabite's Medusa Collection Images Plugin
98 lines • 8.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PUT = exports.DELETE = exports.POST = void 0;
const product_collection_image_1 = require("../../../../../modules/product-collection-image");
const utils_1 = require("@medusajs/framework/utils");
const POST = async (req, res) => {
const logger = req.scope.resolve("logger");
const product_collection_id = req.params.id;
const collectionImagesService = req.scope.resolve(product_collection_image_1.PRODUCT_COLLECTION_IMAGE_MODULE);
const link = req.scope.resolve("link");
const urls = req.validatedBody.urls;
const input = urls.map((img_url, i) => ({
product_collection_id,
url: img_url,
rank: i,
}));
try {
const collection_images = await collectionImagesService.createProductCollectionImages(input);
const mappedLinks = collection_images.map((image) => ({
product: { product_collection_id },
product_collection_image: { product_collection_image_id: image.id },
}));
await link.create(mappedLinks);
return res.status(201).json(collection_images);
}
catch (error) {
logger.error("Creating Collection images record failed", error);
return res.status(500).end();
}
};
exports.POST = POST;
const DELETE = async (req, res) => {
const logger = req.scope.resolve("logger");
const link = req.scope.resolve("link");
const ids = req.validatedQuery.images_id;
const query = req.scope.resolve("query");
const id = req.params.id;
const collectionImagesService = req.scope.resolve(product_collection_image_1.PRODUCT_COLLECTION_IMAGE_MODULE);
try {
await collectionImagesService.deleteProductCollectionImages(ids);
await link.delete({
product_collection_image: { product_collection_image_id: ids },
});
const { data } = (await query.graph({
entity: "product_category_images",
filters: {
product_category_id: id,
},
fields: ["*"],
pagination: {
order: {
rank: "asc",
},
},
}));
const updated_images_ranks = await (0, utils_1.promiseAll)(data
.map(async (image, i) => {
if (image.rank !== i) {
return (await collectionImagesService.updateProductCollectionImages({
id: image.id,
rank: i,
}))[0];
}
else
return image;
})
.filter((img) => img !== undefined));
return res.status(200).json(updated_images_ranks);
}
catch (error) {
logger.error("Deleting Collection images record failed", error);
return res.status(500).end();
}
};
exports.DELETE = DELETE;
const PUT = async (req, res) => {
const logger = req.scope.resolve("logger");
const collectionImagesService = req.scope.resolve(product_collection_image_1.PRODUCT_COLLECTION_IMAGE_MODULE);
const { images } = req.validatedBody;
try {
const updated_images = await (0, utils_1.promiseAll)(images
.map(async ({ rank, id }) => {
const updated_product_collection_image = await collectionImagesService.updateProductCollectionImages({
id,
rank,
});
return updated_product_collection_image;
})
.filter(Boolean));
res.status(200).json(updated_images);
}
catch (error) {
logger.error("Updating Collection images record failed", error);
return res.status(500).end();
}
};
exports.PUT = PUT;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Byb2R1Y3QtY29sbGVjdGlvbi9baWRdL2ltYWdlcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFRQSw4RkFBa0c7QUFDbEcscURBQXVEO0FBRWhELE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBc0QsRUFDdEQsR0FBNkMsRUFDN0MsRUFBRTtJQUNGLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFFNUMsTUFBTSx1QkFBdUIsR0FDM0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ2YsMERBQStCLENBQ2hDLENBQUM7SUFFSixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV2QyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0QyxxQkFBcUI7UUFDckIsR0FBRyxFQUFFLE9BQU87UUFDWixJQUFJLEVBQUUsQ0FBQztLQUNSLENBQUMsQ0FBQyxDQUFDO0lBRUosSUFBSSxDQUFDO1FBQ0gsTUFBTSxpQkFBaUIsR0FDckIsTUFBTSx1QkFBdUIsQ0FBQyw2QkFBNkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyRSxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEQsT0FBTyxFQUFFLEVBQUUscUJBQXFCLEVBQUU7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